This invention relates generally to help facilities on a data processing system; and more particularly, it relates to a method of providing instruction syntax help information as instructions are entered.
The invention generally relates to data entry systems of the type employing a keyboard or other data entry user interface and a display screen such as a Cathode Ray Tube (CRT) or similar display for displaying data entered by the user. More particularly, the invention is directed to a screen help technique to assist the user in the correct entry of data. A typical data entry system in which the technique according to the invention can be advantageously used ranges from small, self-contained microcomputer systems generally referred to as personal computers to mainframe systems having a plurality of terminals.
Conventionally, a data entry system is designed to display a xe2x80x9cscreenxe2x80x9d or xe2x80x9cmenuxe2x80x9d having a plurality of data entry labels or categories with blanks immediately adjacent each data entry label or category. It is in these blanks where the user is required to enter the corresponding data. The blanks may be delineated by an underline or some other demarcation to show the user where the data is going by category. The blanks have a predefined length in terms of the number of characters that can be accepted by the system for the corresponding categories, and the underlining or other demarcation would also serve the purpose of showing the length as well as the location of the data required Such xe2x80x9cscreensxe2x80x9d or xe2x80x9cmenusxe2x80x9d can be generated by a screen generator which is a computer program written specifically for that purpose. Those skilled in the art will also know that a screen generator program can be written from scratch very simply by using BASIC or other suitable computer programming languages. A characteristic of the xe2x80x9cscreensxe2x80x9d or xe2x80x9cmenusxe2x80x9d which are produced for data entry purposes is that the cursor which is displayed on the screen can only be placed in one of the designated blanks and no where else on the screen. Thus, data entry is limited to predefined areas on the screen, and these areas themselves provide the interface with the data entry program which is requesting the data. In other words, the user is relieved of the burden of telling the data entry program what category of data is being entered since the data entry program will recognize the category by the location on the screen in which the data is entered.
Obviously, the data entry system just described is a very good one in that it is simple and easy to use. In those cases where the type of data is routine such as would be encountered in motor vehicle statistics and employee records, it takes very little time for a user to become proficient in making data entries. In those cases where the user is just learning the system, help can be provided by a manual. It is also known to provide a special xe2x80x9chelpxe2x80x9d key or command for the user to call up a xe2x80x9chelpxe2x80x9d screen or menu if she is uncertain about the entry of certain data. Typically, such a menu obstructs all or at least part of the data entry screen and provides a set of instructions or explanations which merely repeat those which would be found in the manual. This procedure has the advantage of allowing the user quick reference to instructions or explanations without having to fumble through the manual.
There are certain situations, however, where the data entry is not routine. For example, if the user does not regularly use the data entry system, it may take the user some time to remember the data entry procedure and the quality and quantity of data required by the system. Obviously, the display of a full or partial screen menu of xe2x80x9chelpxe2x80x9d instructions or explanations will save some time for the user by avoiding the time spent leafing through a manual. But the user will still have to study the information presented and make some judgements to apply those instructions or explanations to their requirements. In another example, the data entry system may be used for purposes of configuring a control program for a particular application. An example of such a system is disclosed in U.S. Pat. No. 4,644,478, filed Sep. 13, 1983, by Lawrence Keith Stephens and Robert B. Hayes for xe2x80x9cMonitoring and Alarm System for Custom Applications.xe2x80x9d Especially in this type of situation, the data entered is unique to the particular application and, although the data entry screen is designed to promote ease of data entry, the user may at times need better quality help than is provided by manuals or help screens.
As computer technology has progressed, particularly with the advent of the personal computer, data processing has reached every level of society and user. Most of the software used with personal computers is highly interactive in that the actions taken by the system are dependent upon the actions taken by the operator of the computer system. Examples of such application programs are various text processing programs and spread sheets. The commercial acceptability of any application program is largely dependent on how xe2x80x9cuser friendlyxe2x80x9d that program appears to the user. There are a variety of means of helping the user interact with a program, but one of the more important means is some sort of help facility which the user can call upon for assistance.
In the prior art, help information is usually provided in a window on the same screen from which the help is requested. The information in these windows is usually hard coded into the application itself. This type of help facility is basically a condensed version of the operating guide for the application software. This type of help facility is used in a manner similar to the operating guide, except that it is automated. The user may be forced to navigate through one or more panels in text lists in pursuit of an answer to her problem. More information is generally provided than is required.
An improvement in summoning help is xe2x80x9ccontextual helpxe2x80x9d which is dependent on the context of the help request. Several types are known in the art. The least context driven is called application contextual; xe2x80x9chelpxe2x80x9d is a selectable action on a menu bar to be chosen by the user if she requires help with a particular application.
Panel contextual help is more context driven than application contextual. Help request areas are present in each panel to summon help information related to the particular panel. Sometimes the displayed help information will carry a heading referring to the panel which helps correlate the help information and the panel last used by the user.
The most selective means of providing contextual help is to provide help based on the current cursor position in the window in the active application. This method is called cursor focus contextual. However, when help is displayed in conjunction with the position of the pointer, it is generally displayed in a dedicated area far from the pointer position and is not very natural to access for the user. Further, while cursor focus contextual methods exist, the prior art fails to provide help information on those areas on the screen where cursor focus cannot be established. For example, certain system controls, graphics, read-only text, etc. in certain applications, cannot receive the cursor focus. Often, help is very badly needed in these areas.
In sophisticated computer programs, a specialized type of help information concerns the changing status of the various components of the system, either hardware or software. A graphical user interface is a particularly useful means of presenting this type of information, yet until a user becomes familiar with icons associated with the various states of the system additional help may be required. As status information continually changes, some means for dynamic updating must be provided.
Another problem with most help systems is that they force the system into a help mode in which actions on the application cannot be taken. This leads to a frustrating situation, particularly for a novice user, in which the user must repeatedly alternate between mutually exclusive help and application modes, while remembering the status of the application or help information while interacting with the system. It is somewhat ironic that the system which provides help to the user, also gets in her way.
To be most effective, help information should be displayed near the focus of the user""s attention, e.g., a mouse pointer. However, the previous methods either use a dedicated area of the window, or display too much information and obscure the information being displayed by the application.
An object of the invention is to provide instruction help and status information dynamically as instructions and their corresponding parameters are entered.
It is another object of this invention for the help or status information to follow the focus of the user""s attention as it moves across the graphical user interface.
It is another object of this invention to minimize the number of windows or keystrokes needed by the user to access help or status information.
It is another object of the invention to provide help or status information while allowing the user to simultaneously interact with the underlying application.
It is another object of the invention to provide detailed help on portions of the graphical user interface for which the user""s focus currently resides.
It is an other object to present help and status information in a nonintrusive manner.
These and other objects are accomplished by a method of displaying contextual help or status information to the user of a computer system. A system for displaying instruction syntax help information to a user as instructions are entered into an editor or other tool. The instruction syntax is presented with the next parameter in the instruction highlighted to prompt the user for entry of that parameter. A database of instructions and their syntax is provided to facilitate efficient search and retrieval of the instruction syntax for each instruction of the language.